import {
	uniGetToken
} from './common.js'
// 定义请求地址 http://101.42.3.100:8088/
// web.xn--s1r487m.com
// const BASE_URL = "https://xn--s1r487m.com/admin-api"
const BASE_URL = "http://101.42.3.100:48080/admin-api" //测试
// const BASE_URL = "http://172.16.10.74:48080/admin-api" //李猛
// const BASE_URL = "https://xn--s1r487m.com/admin-api"
// const BASE_URL = "http://172.16.10.90:48080/admin-api"//鑫宇
// const BASE_URL = "http://172.16.10.53:48080/admin-api" //强哥
// const BASE_URL = "http://192.168.0.157:48080/admin-api"
// const BASE_URL = "http://192.168.0.110:48080/admin-api" 
// const BASE_URL = "https://xn--s1r487m.com/admin-api"
// 封装请求方法
const request = (obj) => {
	obj.url = obj.url || ''; // 请求路径
	obj.method = obj.method || 'GET'; //请求方式
	obj.data = obj.data || {}; //请求携带的数据
	obj.header = obj.header || 'application/json'; //请求头信息 content-type
	obj.loading = obj.loading === false ? false : true; //是否显示请求加载中
	obj.requestTime = obj.requestTime || 500; //多久时间内完成网络请求，则不显示提示框

	let loadingStatus = true;
	//定义网络请求如果在一定时间内没有完成，则显示加载中提示框，默认时间为：500毫秒
	setTimeout(() => {
		if (loadingStatus && obj.loading) {
			uni.showLoading({
				title: "加载中",
				mask: true
			})
		}
	}, obj.requestTime)

	//返回Promise对象
	return new Promise((resolve, reject) => {
		uni.request({
			url: BASE_URL + obj.url,
			method: obj.method,
			data: obj.data,
			header: {
				'Content-Type': obj.header,
				'authorization': uniGetToken(),
			},
			success: res => {
				if (res.data.code == 0) {
					resolve(res.data);
					uni.hideLoading();
				} else {
					// 这里可以构建错误对象进行 reject
					let error = new Error(res.data.msg || '请求失败');
					reject(error); // 如果 code 不是 0，则执行 reject
					uni.showToast({
						title: res.data.msg,
						icon: 'none',
						duration: 3000
					});
					if(res.data.code==401){
						uni.reLaunch({
							url: '/pages/login/index'
						})
					}
					uni.hideLoading();
				}
			},
			fail: error => {
				reject(error);
				uni.hideLoading();
			},
			complete: () => {
				if (loadingStatus && obj.loading) {
					uni.hideLoading();
				}
				loadingStatus = false;
			}
		})
	});
}

export default request;